#include "stack_1.h"
//栈的初始化函数
void stack_init(stack* p_stack) {
	p_stack->qty = 0;
}
//栈的清理函数
void stack_deinit(stack* p_stack) {
	p_stack->qty = 0;
}
//获得栈数字个数的函数
int stack_size(const stack* p_stack) {
	return p_stack->qty;
}
//判断栈是否空的栈
int stack_empty(const stack* p_stack) {
	return !p_stack->qty;
}
//判断栈是否满的函数
int stack_full(const stack* p_stack) {
	return p_stack->qty >= SIZE;
}
//向栈里加入数字的函数
int stack_push(stack* p_stack, int val) {
	if(p_stack->qty >= SIZE) {
		return 0;
	}
	p_stack->buf[p_stack->qty] = val;
	p_stack->qty++;
	return 1;
}
//从栈里获取数字的函数（同时删除数字)
int stack_pop(stack* p_stack, int* p_val) {
	if(!p_stack->qty) {
		return 0;
	}
	*p_val = p_stack->buf[p_stack->qty - 1];
	p_stack->qty--;
	return 1;
}
//从栈里获得数字的函数（不会删除数字）
int stack_top(const stack* p_stack, int* p_val) {
	if(!p_stack->qty) {
		return 0;
	}
	*p_val = p_stack->buf[p_stack->qty - 1];
	return 1;
}
